import java.util.ArrayList;
import java.util.Iterator;
import java.util.NoSuchElementException;


public class ProduktuZerrenda {

	//atributuak
	private ArrayList<Produktua> prodZerrenda;
	//Eraikitzailea
	public ProduktuZerrenda(){
		prodZerrenda=new ArrayList<Produktua>();
	}
	
	//getters & setters
	public ArrayList<Produktua> getProdZerrenda() {
		return prodZerrenda;
	}
	public void setProdZerrenda(ArrayList<Produktua> prodZerrenda) {
		this.prodZerrenda = prodZerrenda;
	}
	
	//gainontzeko metodoak
	
	public void gehitu(Produktua pProd){
		prodZerrenda.add(pProd);
	}
	
	
	
	public Iterator<Produktua> getIteradorea(){
		return(this.getProdZerrenda().iterator());
	}

		
	public KontuKorrontea KkBilatu(int pKk) throws NoSuchElementException{
		
		Produktua pProduktua = null;
		Iterator<Produktua> it = this.getIteradorea();
		Boolean aurkitua = false;
		while((it.hasNext()) ){
			Produktua a= it.next();		
			if(a instanceof KontuKorrontea){
				
				KontuKorrontea kk = (KontuKorrontea) a ;
				
				if (kk.konprobatuKodigo(pKk)==true) {
					pProduktua = kk;
					aurkitua = true;
						}
			}
		}
			if(aurkitua == true){
				return((KontuKorrontea) pProduktua);
			}
			else{
				throw new NoSuchElementException();
				}
		}
	
	
	public void diruaAtara(int pPina, int pKod,int pKop){
		
		KontuKorrontea pKontu;
		int a = 0;
		
		
		
		try{
		pKontu=this.KkBilatu(pKod);	
		if(pKontu.pinEgokia(pPina)==true){
			if (pKontu.diruaDauka()==true){
				if (pKontu.ateraDezake(pKop)== true){
						pKontu.kenduZenbatekoa(pKop);
						a=pKontu.getZenbatekoa();
						System.out.print(a);
						}
					}
				}
			}
		
			catch(NoSuchElementException e){
				System.out.print("KANPORA");
			}
		
		
		
	}	
		
		
		
	
	
	public int totalaAtara(){
		Iterator<Produktua> itProd = this.getIteradorea();
		Produktua pProd;
		int akumulatu=0;
		while (itProd.hasNext()){
			pProd = itProd.next();
			int tot = pProd.totalaAtara();
			akumulatu = akumulatu + tot;
			
		 }
		return (akumulatu);
		
	}
	
	public void ListatuBezeroak(){
		Iterator<Produktua> itProd = this.getIteradorea();
		Produktua pProduktua;
		while(itProd.hasNext()){
			pProduktua = itProd.next();
			
			pProduktua.listatuNorkErosi();
			
			
			
		}
	}
	
}